A communication network typically includes multiple nodes or computing devices referred to as “servers” that, among other things, process requests from other computing devices referred to as “clients” that are accessing the network.
An example communication network is one that supports the Session Initiation Protocol (SIP). SIP is an application-level control protocol for setting up and tearing down sessions with one or more participants. Such sessions may typically involve Internet telephone calls (i.e., so-called Voice over Internet Protocol or VoIP calls) or video calls. However, SIP may be used in other applications where session initiation is required. Also, SIP is merely a signaling (control) protocol which serves to create, modify and terminate sessions, while other session protocols (e.g., Real-time Transport Protocol or RTP) are used to handle the actual transfer of the media content (e.g., voice or video data). Further, SIP acts as a carrier for the Session Description Protocol (SDP), which describes the media content of the session.
SIP servers (and all servers, in general) must be provisioned correctly to handle the peak offered load (processing of requests). If the offered load has bursts, the effective maximum throughput of a server is reduced; as the server must be provisioned to handle such bursts. Another possibility is that these bursts may cause the server to report errors, fail, or behave in other unexpected and undesirable ways due to overload conditions resulting from too many messages being processed.
Accordingly, there is a need provide techniques that overcome these and other drawbacks in such communication networks.